<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>插槽</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>

<body>
    <div id="app">
        <body-content>
            <div class="header" slot="header">header</div>
            <div class="footer" slot="footer">footer</div>
        </body-content>
        <child>
            <template slot-scope="props">
                <li>{{props.index}}-{{props.item}}</li>
            </template>
        </child>
    </div>
</body>

</html>
<script>
    Vue.component('body-content',{
        template:`<div>
                    <slot name="header"></slot>
                    <div>content</div>
                    <slot name="footer"></slot>
                </div>`
    })

    Vue.component('child',{
        data:function(){
            return {
                list:[1,2,3,4]
            }
        },
        template:`<div>
                    <ul><slot v-for="(item,index) of list" :index=index :item=item></slot></ul>
                </div>`
    })

    var vm = new Vue({
        el: "#app"
    })
</script>